The following description of the background art is based on DTMF-receivers that include a digital signal processor. However, the present invention, as later described, can also be applied with analog DTMF-receivers, with suitable modifications.
A program, the so-called DTMF-program (algorithm), is provided for measuring and examining the input signal to a DTMF-receiver. This program may be divided, for instance, into 6 ms long measuring intervals, of which each comprises 24 sub-intervals. Each sub-interval is 250 .mu.s long (sub-sampling). At the end of each 6 ms measuring interval, the accumulated energies of the low frequency group and the high frequency group and of each DTMF-frequency are ready for analysis. The program is comprised of two parts.
The first part is carried out in real time, namely once every 250 .mu.s, and includes input sample filtration, energy accumulation and counting zero-crossings.
The other part of the DTMF-program is carried out at the end of each 6 ms measuring interval (during the last 250 .mu.s sub-interval) and includes analyzing the filtration result, validation and decoding of the DTMF-signal and time supervision.
These two parts of the program will be described individually in more detail below.
In the first part of the program, of input samples is effected with the aid of a classic filter-bank method, which provides the spectral energy of the eight DTMF-frequencies by digital filtration. The incoming PCM-signal is first divided into a low frequency band and a high frequency band, for the high and the low frequency groups, so as to enable the latter to be processed separately. The frequency band separation is effected by two IIR elliptical cascade filters of the band-pass type (sixth order for low bands and eighth order for high bands) constructed by bilinear transforms. The output signals from each band-pass filter are then processed in four band-pass filters (second order IIR-resonators), the pass bands of which correspond to the eight DTMF-frequencies. The end result of the first program part (at the end of each 6 ms measuring interval) is the spectral energies of the low frequency band and the high frequency band and of eight DTMF-frequency bands.
As before mentioned, the second part of the program is carried out at the end of the 6 ms measuring interval.
Analysis is effected on the basis of the result obtained from the first part of the program (accumulated energies of low and high frequency bands and of each DTMF-frequency), and leads to decoding of the DTMF-number.
In effect, a number of comparisons and checks, or controls, are carried out in this second part of the program, and the average energy of each band is calculated. This series of comparisons and checks ensures that the tones lie within specified limits and that a valid tone is new data that must be processed. The checks are carried out in the following order:
Signal level check PA1 Swing check PA1 The use of window techniques; PA1 Analysis of second harmonics; PA1 Swing check. PA1 counting during each of a number of measuring intervals in real time the number of zero-crossings of the input signal at frequencies which occur in the low frequency group and the high frequency group of a DTMF-signal; PA1 comparing at the end of each of the measuring intervals the number of zero-crossings for each frequency group in a current measuring interval with the number of zero-crossings in a number of immediately preceding measuring intervals, and establishing the magnitude of any difference therebetween; and PA1 treating the input signal as a DTMF-signal when the difference is at most equal to a permitted limit value. PA1 measuring in real time in each of the DTMF-frequency group bands during each of a number of measuring intervals an energy parameter which is representative of the tone energy of an input signal;. PA1 determining the average value of such totally measured parameters over the measuring interval from the beginning of the signal concerned during the end of each measuring interval; PA1 determining the difference between each of the relevant energy parameters in the two bands and the average value established parameter; PA1 determining at least three threshold values for this difference, namely a normal value below which a DTMF-signal is considered to exist, at least one greater-than-normal value, and at least one smaller-than-normal value; PA1 ascertaining whether or not the difference in one of the bands lies above the normal value, and if the difference does lie above said normal value, PA1 ascertaining whether or not the difference in question also lies above the greater-than-normal value; and PA1 comparing the difference in the second band with the smaller-than-normal value in order to ascertain whether or not the difference lies beneath said value, in which case a DTMF-signal is considered to exist. PA1 (a) The current energy of the two bands lies beneath the smaller-or-normal value and/or the normal value; PA1 (b) The current energy of a band exceeds the normal value but not the lower of the greater-than-normal values, and the current energy of the other band is lower than the smaller-than-normal value and/or the normal value; and PA1 (c) The current energy of a band exceeds the lower but not the higher of the greater-than-normal values, the current energy of the other band is lower than the smaller-than-normal value and no earlier energy of said other band has exceeded the lower greater-than-normal value, this earlier energy being calculated from the 6 ms interval in which the DTMF-signal concerned is detected for the first time.
The swing is the difference between the average energy and the current energy of the signal (the current energy is energy that is accumulated during the preceding 6 ms measuring interval). In effect, the swing shows the level of signal stability. DTMF-signals normally have only a small swing, whereas speech normally has a large swing. Swing check is therefore used to improve speech immunity. The band-pass energies of the average values are calculated in accordance with appropriate formulae, when the signal is sufficiently strong and the swing value lies within prescribed limits.
Twist is the difference, in decibels, between the amplitude of the strongest keypad row tone and the amplitude of the strongest keypad column tone. According to CEPT, the maximum permitted twist is .+-.6 dB.
During the DTMF-frequency validation process, the program compares the energy of each frequency resonator in each group (band) with the average energy of the whole group (band). In order for a DTMF-signal to be considered to exist, it is necessary, generally, for the strongest tone in each group to lie above a given threshold, while all other tones in the group must lie beneath a given lowest noise level. Each DTMF-frequency has its own threshold and noise level.
Time supervision ensures that the DTMF-number will only be detected when all specified time requirements (tone length, pause length, tone interruption, etc.) are fulfilled.
Typical problems encountered with DTMF-receivers relate to requirements concerning speech immunity and sensitivity. The more sensitive the receiver, the worse its speech immunity, in general. When constructing a DTMF-receiver, endeavours are made generally to find an optimal compromise between these two requirements, i.e., a compromise which will provide both good sensitivity and speech immunity at one and the same time.
A number of other methods of improving the speech immunity of a receiver are known to the art. The most common of these methods include:
The window technique is normally used when evaluating DFT and other algorithms of this type (Gortzel algorithm).
The analysis of second harmonics includes calculating the energy at the double tone frequency and introducing this value in the DTMF-tone validation checks. Application of this technique is more or less essential when using DFT (Gortzel algorithm), because relatively little calculation work is required to calculate the energy of the second harmonic. However, this calculation of the second harmonic requires the use of eight additional filters when using the filter-bank method according to the above.
Swing check is the usual technique applied when using the filter-bank method. Swing is in effect a measurement of swings, or oscillations, in the level of the input signal. The level of the DTMF-signal is normally more or less constant, whereas said level is quite unstable with regard to speech. An investigation with the aid of swing check examination will therefore ensure that the program will not confuse speech with DTMF-signal, or at least not too often.
Nevertheless, the DTMF-signal may have marked swings in environments of very strong noise or in the presence of strong interference frequencies. In such instances, the swing check is sometimes unable to solve the speech immunity problem. The speech immunity will decrease considerably when the maximum swing tolerance increases. On the other hand, if this increase does not occur, the receiver sensitivity will worsen and detection becomes poor.
WO-A1-87/07799 describes a telephone line supervisory system which includes a circuit for detecting voice signals in the presence of "supervisory signals" on a number of telephone lines. The teachings of this publication are based on the teachings of U.S. Pat. No. 4,356,348, which is said to determine the most usual time interval between zero-crossings of an input signal and compares this interval with subsequent time intervals with the intention of classifying the input signal, with regard to whether the signal is periodic or not.
According to WO-A1-87/07799, the system includes zero crossing detectors. Short samples (10 ms) are taken from the incoming signal and also count values of the waveforms from which the signal is composed. A voice generates more events than tones for a given sample, because of that a voice sound will exhibit more complex waveforms than tones. In order to avoid erroneous interpretation of noise, two or three samples are taken in sequence in order to distinguish between silence, tones and voice.
U.S. Pat. No. 4,439,639 describes a digital tone detector for a plurality of "call progress tones", voice signals or silence. There is produced a signal which corresponds to the level of the input signal, zero-crossings are counted and an envelope detector produces a signal representative of the envelope frequency. From this, a logic circuit produces an output signal which represents the identity of the input signal.
U.S. Pat. No. 3,927,259 teaches a signal identification system for distinguishing between noise and modulated data. The system utilizes zero crossing detection, among other things.
U.S. Pat. No. 4,675,898 discloses that it is known in DTMF to apply zero crossing detection for detecting each individual tone frequency. The publication does not deal with the problems surrounding speech immunity.
U.S. Pat. No. 4,599,495 describes an apparatus for detecting tones in conjunction with multi-frequency signalling processes. "Talk-off immunity" is discussed and the intention is to indicate the presence of signal tones in an input channel where noise occurs.
Several filters are used, and the use of first and second thresholds is mentioned.
U.S. Pat. No. 4,386,239 describes a multi-frequency tone detector, and the intention is to be able to distinguish between tones and signals that derive from noise and voices. The patent mentions comparator thresholds, and two comparators are used.
U.S. Pat. No. 5,070,526 relates to a signal analysis system for determining whether a telephone signal consists of a voice or a "call progress signal". This system utilizes a computer and analyzes segments of the digital representation of the signal to determine whether or not the signal has uniform frequency components which are repeated at regular intervals. No mention is made of the recognition of a tolerated single noise tone.